# 第10题第二部分

import sympy as sp

#定义符号变量 y, 以及两个符号表达式，分别代表高度为 y 的那一层水的面积
y = sp.var('y')
f1 = sp.pi*(4-y**2)
f2 = sp.pi*(4*y-y**2)
rho = 1000 # 每立方米的水设为1000千克
g = sp.Rational(98,10) # 重力加速度

#计算总的体积
V = sp.integrate(f1, (y,-2,1)) + sp.integrate(f2, (y,1,3))

#计算所做的功
W1 = rho*g*sp.integrate(f1*(3-y),(y,-2,1))
W2 = rho*g*sp.integrate(f2*(3-y),(y,1,3))
W = W1 + W2

print('容器的体积为：', V)
print('所做的功为：', W)

#使用Sympy的N函数，计算符号表达式的具体数值，保留四位有效数字
Vnum=sp.N(V, 4)
print('容器的体积的数值为：', Vnum)
Wnum=sp.N(W, 4)
print('所做的功的数值为：', Wnum)

